Method for key agreement for a cryptographic secure point - to - multipoint connection

ABSTRACT

The invention relates to a method of key exchange for a cryptographic, secure, point to multipoint connection. The aim of the invention is to describe a universal method, which may be applied to existing transmission concepts and security architectures with as little modification as possible, and can, in particular, be patched into the OSI layer model without problems. Said aim is achieved with a method, whereby the key exchange occurs by a modified SSL- or TLS-protocol. The sequence of messages in the handshake which introduces the SSL session are thus altered according to a code in a server message, which characterises the connection to be made as an IP multicast connection. The master key which serves to generate the session code(s) for encoding the application data is thus generated not by the client but rather by the server in a departure form Secure Sockets Layer protocol. The IP multicast identifier is preferably a component of the Client Certification Type, requested from the server by a Certificate Request message.

[0001] The present invention relates to a method for key agreement for a cryptographically secured point-to-multipoint connection. The present invention proposes a solution in which key agreement principles known from point-to-point connections for a secured data transmission between a client and a server are modified in a suitable manner for the setting up a multicast connection.

[0002] The increased use of the Internet also involves the risk of misuse and/or manipulation of the multitude of sometimes sensitive data that is exchanged over the Internet. The majority of Internet users and, of course, even more the experts are aware of the fact that the Internet has to be considered an unsafe environment in this respect. However, to increase the possibilities of use of the Internet in spite of this, there is an increasing demand for solutions for secure data transmission because of the aforementioned reasons. Solutions are required which ensure the confidentiality, integrity and authenticity of data. Due to the technical nature of the Internet as a network which is open to everybody, protection of sensitive data in the form of a physical access barrier is not applicable. Therefore, the solution to the problem consists in that the data that is passed over the Internet is encrypted at least to the extent that it is sensitive data or even generally, and that in the course of this encryption, criteria for proving the authenticity of the respective data are obtained by processing the data in a suitable manner.

[0003] In this context, different approaches for securing client-server connections have already become known. A method for key agreement which is used in connection that allow secure data exchange and which, meanwhile, is relatively widespread, is the so-called “Secure Sockets Layer Protocol” (SSL), which, in its standard variant, is also known as “Transport Layer Security” (TLS). This protocol establishes the modalities for a connection between a client and a server in which the data is transmitted in encrypted form. Using the protocol, the client and the server agree on the encryption method to be used, on the session keys used for encryption while the connection is active, on authenticity criteria and, possibly, on further connection modalities as, for example, methods for reducing the data volume by data compression. In this context, the advantage of the method is to be seen in that the SSL protocol seamlessly integrates into the OSI layer model for data transfer. In this respect, the protocol represents a transition (socket) which is transparent in both directions, preferably between the application layer and the transport layer according to the layer model. The SSL protocol is explained in greater detail, for example, by Stephen Thomas in “SSL & TLS Essential”, John Wiley & Sons, New York 2000. The protocol will be discussed in greater detail later in the context of the explanation of the present invention.

[0004] As described, SS/TLS was designed to secure point-to-point connections. This becomes clear, inter alia, from the fact that two of the three values (PremasterSecret, ClientRandom) from which the cryptographic key is ultimately derived, are generated by the client. Therefore, it is not possible for the server to use the same key in the communication with different clients, respectively. This fact makes it impossible for the SSL handshake, as is known from the standard SSL protocol, to be used in point-to-multipoint connections, with the server as the data source and a plurality of clients as data sinks. In many application cases, such IP multicast connections allow effective use of the bandwidth available in the network and, overall, an economical use of time and hardware resources. They are used, for example, in the streaming of audio/video data. Here too, however, there is of course a need for connections that are protected from misuse and manipulation. In this context, however, only proprietary solutions have become known so far, such as in connection with DVB (Digital Video Video Broadcast), which, however, cannot be so easily used for other purposes.

[0005] Therefore, the object of the present invention is to specify a universal method for key agreement for a cryptographically secured point-to-multipoint connection. Moreover, the intention is for the method to mesh, with as little modification as possible, with already existing transmission concepts and security architectures, but, in particular, to integrate with the OSI layer model without difficulty.

[0006] This objective is achieved by a method having the features of the main claim. Advantageous embodiments and refinements of the present invention are set forth in the dependent claims.

[0007] According to the present invention, the key agreement during connection set-up is initially carried out in accordance with the SSL or TLS protocol; however, the sequence of messages in the handshake which initiates the SSL session is altered as a function of an identifier which is contained in a server message and identifies the connection to be established as an IP multicast connection. At the same time, the server generates the MasterKey which is used to generate the session key(s) for encrypting the application data. The MasterKey generated by the server is then transmitted to the client, possibly encrypted with the public key of the client. In this context, whether the MasterKey is encrypted with the public key of the client depends on the specific method variant selected; the method variants, which are the subject matter of embodiments of the method according to the present invention, being explained below. The MasterKey is transmitted to the client using a message which is hereinafter referred to as “ServerMasterKeyExchange message”. This message differs from the ServerKeyExchange message used in some implementations of the standard SSL. In the standard SSL, the serves uses the last-mentioned message to make its public key known to the client (in unencrypted form). This public key is then later used by the client to encrypt the MasterKey that it generates and transmits to the server. In contrast to that, the key which, according to the present invention, is transmitted with the ServerMasterKeyExchange message is the MasterKey which is used to derive the further session keys and which, in a departure from the standard SSL, is thus generated by the server and not by the client, and made available for use in the particular session. To avoid misunderstandings, this message is hereinafter referred to as “ServerMasterKeyExchange message”.

[0008] According to a possible embodiment of the method according to the present invention, the identifier (IP multicast identifier) which is used to identify the connection as an IP multicast connection forms part of the ClientCerficateType requested by the server with the CertificateRequest message.

[0009] Another variant of the present invention provides for a different, new server message, which is still to be defined for the practical implementation of the present invention, to be included in the handshake protocol. This message is virtually a modified ServerMasterKeyExchange message with which the MasterKey generated by the server and, depending on the further refinement of this variant, an identifier which identifies the connection as an IP multicast connection, is/are transmitted by the server to the client. In principle, therefore, there exists the possibility that the IP multicast identifier is already transmitted with the CertificateRequest message of the server or only later as a part of the already mentioned, modified ServerMasterKeyExchange message. However, since in the latter case, problems arise with regard to downward compatibility with the standard SSL (until receipt of the modified ServerMasterKeyExchange message, the client assumes a sequence according to the standard SSL handshake and thus can possibly not do anything with the modified ServerMasterKeyExchange message, which is foreign to it), preference should be given to the first variant

[0010] If the IP multicast identifier is included in the CertificateRequest message, a possible process regime is as follows. After the client has received the CertificateRequest message including the IP multicast identifier from the server, the sequence of the handshake which initiates the SSL session is initially altered in such a way that the generation of the MasterKey by the client is omitted. The client transmits its certificate without sending a ChangeCipherSpec message and a Finished message immediately afterwards and switching to encrypted transmission, as would otherwise correspond to the SSL handshake. Upon receipt of the certificate of the client, the server sends a ServerMasterKeyExchange message. This message includes the MasterKey or the MasterSecret from which the session keys are derived in the further sequence. Immediately after sending the ServerMasterKeyExchange message, the server sends ChangeCipherSpec and, after that, Finished. The client acknowledges receipt of the ServerMasterKeyExchange message in that it, in turn, sends ChangeCipherSpec and Finished and switches to the mode for encrypted transmission. Subsequent to this, the actual session, during which the data is encrypted, can begin. In this method variant, the key exchange, namely the transmission of the MasterKey via the initially still insecure channel, takes place just as in the standard SSL protocol. However, this is unproblematic in that the MasterKey is encrypted with the public key of the client in this method variant.

[0011] According to another variant of the method proposed by the present invention, the MasterKey, which is used to derive the keys for the actual session, is exchanged via a channel that is already SSL-/TLS-secured. Consequently, the method sequence is somewhat different. Initially, the handshake is executed according to the standard SSL protocol until the ChangeCipherSpec message of the server. It is only after this that the further sequence is modified. In this context, immediately subsequent to the ChangeCipherSpec message, the server sends a new message, which is still to be exactly defined in practice in case of a possible inclusion in the standard. This message is virtually a modified ServerMasterKeyExchange message which always includes a new MasterKey generated by the server and, possibly, an IP multicast identifier that switches the sequence. In this method configuration, the MasterKey can be transmitted with the public key of the client without further encryption since the client and the server already operate in encrypted mode due to the ChangeCipherSpec messages which have already been sent by them. The client responds to this with a new ChangeCipherSpec message and by sending the Finished message once again. This is then followed by the repeated sending of ChangeCipherSpec and Finished by the server. In this case, upon sending the Finished message, the client and the server switch to a mode for encrypting the data using the new MasterKey.

[0012] The present invention is embodied in a particularly advantageous manner, if the server, in the communication with a client, in each case uses the same CipherSuite it has previously taken as a basis for the handshake in the communication with other clients. If this CipherSuite is not included in the ClientHello message, the server expediently sends an error message. The variant described last, which is executed according to the standard SSL protocol until the server sends the ChangeCipherSpec message for the first time, is embodied in a particularly advantageous manner if at the second ChangeCipherSpec, the server maintains the same CipherSuite which also servers as a common CipherSuite in the communication with the other clients.

[0013] In the following, the present invention will be explained in greater detail in the light of exemplary embodiments. For better understanding, first of all the SSL handshake according to the standard SSL protocol will be briefly explained. The handshake is accomplished in accordance with the following sequence, which is additionally shown in a block diagram in FIG. 2. Client Server ClientHello message including the proposed SSL options ServerHello message including the selected SSL options Certificate message including server certificate CertificateRequest message, the client is requested to authenticate itself ServerHelloDone message Certificate message including client certificate ClientKeyExchange message inclu- ding session key (encrypted with public key of the server) CertificateVerify message including signature of all preceding handshake messages ChangeCipherSpec Finished ChangeCipherSpec Finished

[0014] The SSL session begins with the ClientHello of the client. The server responds to this with a ServerHello message and subsequently makes its certificate known to the client. The ServerHello block initiated by the ServerHello message also includes a CertificateRequest message with which the server requests the client to authenticate itself. The ServerHello block is terminated by the ServerHelloDone message. The client authenticates itself to the server with a Certificate message and a CertificateVerify message that will be explained below. However, after the Certificate message, the client first sends a ClientKeyExchange message. With this message, the client informs the server of the MasterKey, which is encrypted with the PublicKey of the server and which is used in the further course of the procedure to derive the session keys in accordance with the encryption method agreed upon between the client and the server. The ClientKeyExchange message of the client is then followed by the CertificateVerify message which is used by the client to sign the preceding handshake messages. The client sends ChangeCipherSpec and Finished to terminate the handshake and switches to the mode for encrypted transmission immediately afterwards. The server, in turn, acknowledges this with ChangeCipherSpec and Finished and switches to the mode for transmitting encrypted data, as well.

[0015] As can be seen from the described sequence, the MasterKey for deriving the further session keys is generated by the client. In this context, two of the three values, namely the PremasterSecret and the ClientRandom are provided by the client. Of course, the MasterKey provided by the client can therefore not be used for the communication with other clients. This is the starting point of the present invention. The present invention starts from the idea of adding an IP multicast identifier to one of the messages sent by the server, thus modifying the sequence of the handshake protocol, and of causing the MasterKey to be generated not by the client but by the server as a result of this modified sequence. To this end, according to a first variant of the method according to the present invention, which is additionally shown in a block diagram in FIG. 1, the handshake could be as follows: Client Server ClientHello ServerHello Certificate CertificateRequest ClientCertificateType: Multicast (e.g., 30) ServerHelloDone Certificate CertificateVerify ServerMasterKeyExchange ChangeCipherSpec Finished ChangeCipherSpec Finished

[0016] At the beginning of the session, as in the standard SSL protocol, the client initially transmits a ClientHello message to the server. The server responds with a ServerHello message as well, also still following the standard sequence. The ServerHello message is followed by a Certificate message. The subsequently sent CertificateRequest message includes an identifier in the form of the ClientCertificateType which identifies the connection as an IP multicast connection, in this example indicated by the number 30. This IP multicast identifier signals to the client that the SSL handshake will subsequently be executed in a somewhat modified form, in particular, with the sequence of the messages being altered. The ServerHello block, which is initiated with the ServerHello message and includes the Certificate and the CertificateRequest including the IP multicast identifier, is terminated by the ServerHelloDone message. The client makes its certificate known in response to the request by the CertificateRequest message. This certificate must contain an identifier which authenticates the client for data exchange with the server in an IP multicast connection. However, unlike in the handshake protocol according to the standard SSL, the client does not transmit a ClientKeyExchange message after sending the Certificate message, but only signs the previously sent messages by the CertificateVerify. Also, the transmission of a ChangeCipherSpec message and of the Finished is omitted for the moment. Rather, a series of messages are initially sent by the server now. First, the server transmits a ServerMasterKeyExchange message, which includes the MasterKey which it has generated and which is encrypted with the public key of the client. Thus, in a departure from the standard SSL, the MasterKey generated by the server forms the basis for deriving the session keys required to encrypt the payload data. After sending the ServerMasterKeyExchange message, the server also transmits ChangeCipherSpec and Finished, and subsequently switches to the mode for encrypted transmission. It is only after this that the client, in turn, sends ChangeCipherSpec and Finished, and also switches to the mode for encrypting the data. Thus, in a departure from the handshake according to the standard SSL protocol, the initiation of the actual session, which takes place in encrypted mode, is not terminated by the Finished of the server but by the Finished of the client.

[0017] Another method variant is given in that the MasterKey, which is used to generate the session keys for encrypting the actual payload data, is already transmitted via an SSL-secured channel. A possible sequence of the handshake is then as follows: Client Server ClientHello ServerHello Certificate CertificateRequest ServerHelloDone Certificate ClientKeyExchange message CertificateVerify ChangeCipherSpec Finished ChangeCipherSpec modified ServerMasterKeyExchange IP multicast address or identifier IP multicast key ChangeCipherSpec Finished ChangeCipherSpec Finished

[0018] The handshake proceeds according to the standard SSL protocol until the first ChangeCipherSpec message is sent. The server responds to this with a ChangeCipherSpec message which, however, is not followed by the Finished message in a departure from the usual sequence. Instead, the server now sends a message which is still to be defined for the practical implementation of the present invention. This message contains at least a MasterKey generated by the server and will therefore be referred to as “modified ServerMasterKeyExchange message” hereinafter. The exact form of this message depends on the time at which the IP multicast identifier is transmitted by the server to the client according to this second variant. In this context, as in variant 1, the IP multicast identifier can be a part of the CertificateRequest message of the server or else from part of the modified ServerMasterKeyExchange according to the sequence described above. Another, again slightly modified sequence is according to the following scheme: Client Server ClientHello ServerHello Certificate ServerHelloDone Certificate ClientKeyExchange ChangeCipherSpec Finished ChangeCipherSpec ClientAuthRequest ClientAuthResponse (e.g., password or PIN) modified ServerMasterKeyExchange IP multicast address IP multicast key ChangeCipherSpec Finished ChangeCipherSpec Finished

[0019] Here, the modified ServerMasterKeyExchange message is preceded by a ClientAuthRequest of the server. With this ClientAuthRequest, a prompt is issued to carry out the authentication by entering, for example, a password of a PIN at the client. The client transmits the password or the PIN to the server with the ClientAuthResponse message. The further sequence is according to the method variant described above.

[0020] When using one of the above described modified SSL protocols for establishing a Security Association in the sense of an IPSec standard, attention must also be paid that the individual messages or message blocks are transmitted as ISAKMP messages (IETF RFC 2408), and that, in all variants, the ServerMasterKeyExchange message contains, in addition to the (Pre-)MasterSecret, also all other information to allow the client to generate a Security Association for IP multicast (cf. IETF RFC 2401). This includes, inter alia, the IP multicast address and the Security Parameters Index (SPI) which must be set by the server here. Security Associations are bidirectionally identical, i.e., in both directions (transmission and reception).

[0021] Today, the SSL/TLS protocol is used on OSI layers 2 or 5. Since the IP protocol and thus, depending on the option, the IP multicast are used on layer 3, the present invention can be used between the application layer (Telnet, FTP or HTTP) and the transport layer TCP, just as the standard SSL protocol.

[0022] For practical implementation of the method, the customer requests a special SSL client certificate. In this certificate, an extension is set which indicates that this certificate can be used to encrypt data and is of the type Multicast SSL. With the transmission of the respective messages, it is indeed possible, as usual, to exchange random values (ClientRandom, ServerRandom) between the client and the server; however, these do not go into the calculation of the MasterKey or of the MasterSecret. The MasterKey is generated by the server exclusively from the generated PremasterSecret. 

What is claimed is:
 1. A method for key agreement for a cryptographically secured point-to-multipoint connection between a data source (server) and a plurality of data sinks (clients) in the Internet, in which the key agreement is performed according to a modified SSL- or TLS-protocol, the sequence of messages in the handshake which initiates the SSL session being altered as a function of an identifier which is contained in a server message and identifies the connection to be established as an IP multicast connection, and the MasterKey, which is used to generate the session key(s) for encrypting the application data, being generated by the server and transmitted to the client, possibly encrypted with the public key of the latter.
 2. The method as recited in claim 1, wherein the identifier (IP multicast identifier) which is used to identify the connection as an IP multicast connection forms part of the ClientCerficateType requested by the server with the CertificateRequest message.
 3. The method as recited in claim 1, wherein the IP multicast identifier forms part of a modified ServerMasterKeyExchange message with which the server at the same time transmits to the client the MasterKey for later derivation of session keys.
 4. The method as recited in claim 2, wherein after the client has received the CertificateRequest message including the IP multicast identifier from the server, the sequence of messages in the handshake which initiates the SSL session is altered in such a way that the generation of the MasterKey by the client is omitted, the client transmits its certificate to the server without sending a ChangeCipherSpec message and switching to encrypted transmission immediately afterwards and that, after that, a MasterKey which is generated by the server and encrypted with the public key of the client is transmitted by the server to the client with a ServerMasterKeyExchange message, the server, after transmitting the ServerMasterKeyExchange message and subsequent to sending ChangeCipherSpec and Finished, switching to the mode for encrypted data transmission first, and the client, after that, acknowledging the ServerMasterKeyExchange message received from the server by sending ChangeCipherSpec and Finished and by switching to the mode for encrypted data transmission.
 5. The method as recited in claim 2 or 3, wherein the sequence of the handshake follows the handshake according to the standard SSL protocol until the ChangeCipherSpec message of the server, then, however, instead of the Finished message, the server sends a modified ServerMasterKeyExchange message which includes at least an encrypted MasterKey generated by the server and which is followed by a further ChangeCipherSpec message of the server, the client, in turn, as an acknowledgement of the receipt of the MasterKey and the subsequent ChangeCipherSpec message of the server, sending a ChangeCipherSpec message and a Finished message once again and, thereupon switching to an encryption mode in which the new MasterKey provided by the server is used.
 6. The method as recited in claim 5, wherein the modified ServerMasterKeyExchange message is preceded by a ClientAuthRequest message of the server with which the server requests the client to authenticate itself, preferably with a password or a PIN, as well by a ClientAuthResponse message of the client, which acknowledges this request.
 7. The method as recited in one of the claims 1 through 6, wherein in the communication with a client, the server uses a CipherSuite within the ServerHello message that is identical to the communication with other clients, the server sending an error message in the case that such a CipherSuite is not also contained in the ClientHello message.
 8. The method as recited in claim 5 or 6, wherein the server and the client, after sending the respective second ChangeCipherSpec message, use the same CipherSuite for encryption they agreed upon during the initiation of the handshake with the ClientHello message and the ServerHello message. 